﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DemoApplication1
{
    class RandomData
    {
        private static Random ran = new Random();

        private static string[] male_firstnames = "Michael,Christopher,Joshua,Matthew,Daniel,David,Andrew,Justin,Ryan,Robert,James,Nicholas,Joseph,John,Jonathan,Kevin,Kyle,Brandon,William,Eric,Jose,Steven,Jacob,Brian,Tyler,Zachary,Aaron,Alexander,Adam,Thomas,Richard,Timothy,Benjamin,Jason,Jeffrey,Sean,Jordan,Jeremy,Travis,Cody,Nathan,Mark,Jesse,Charles,Juan,Samuel,Patrick,Dustin,Scott,Stephen,Paul,Bryan,Luis,Derek,Austin,Kenneth,Carlos,Gregory,Alex,Cameron,Jared,Jesus,Bradley,Christian,Corey,Victor,Cory,Miguel,Tylor,Edward,Francisco,Trevor,Adrian,Jorge,Ian,Antonio,Shawn,Ricardo,Vincent,Edgar,Erik,Peter,Shane,Evan,Chad,Alejandro,Brett,Gabriel,Eduardo,Raymond,Phillip,Mario,Marcus,Manuel,George,Martin,Spencer,Garrett,Casey".Split(',');
        private static string[] female_firstnames = "Jessica,Ashley,Amanda,Brittany,Sarrah,Jennifer,Stephanie,Samantha,Elizabeth,Megan,Nicole,Lauren,Melissa,Amber,Michelle,Heather,Christina,Rachel,Tiffany,Kayla,Danielle,Vanessa,Rebecca,Laura,Courtney,Katherine,Chelsea,Kimberly,Sara,Kelsey,Andrea,Alyssa,Crystal,Maria,Amy,Alexandra,Erica,Jasmine,Natalie,Hanna,Angela,Kelly,Brittney,Mary,Cassandra,Erin,Victoria,Jacqueline,Jamie,Lindsey,Alicia,Lisa,Katie,Allison,Kristen,Cynthia,Anna,Caitlin,Monica,Christine,Diana,Erika,Veronica,Kathryn,Whitney,Brianna,Nancy,Shannon,Kristina,Lindsay,Kristin,Marissa,Patricia,Brooke,Brenda,Angelica,Morgan,Adriana,April,Ana,Taylor,Tara,Jordan,Jenna,Catherine,Alexis,Karen,Melanie,Natasha,Sandra,Julie,Bianca,Krystal,Mayra,Holly,Alexandria,Monique,Leslie,Katelyn".Split(',');
        private static string[] lastnames = "Smith,Johnson,Williams,Jones,Brown,Davis,Miller,Wilson,Moore,Taylor,Anderson,Thomas,Jackson,White,Harris,Martin,Thompson,Garcia,Martinez,Robinson,Clark,Rodriguez,Lewis,Lee,Walker,Hall,Allen,Young,Hernandez,King,Wright,Lopez,Hill,Scott,Green,Adams,Baker,Gonzalez,Nelson,Carter,Mitchell,Perez,Roberts,Turner,Phillips,Campbell,Parker,Evans,Edwards,Collins,Stewart,Sanchez,Morris,Rogers,Reed,Cook,Morgan,Bell,Murphy,Bailey,Rivera,Cooper,Richardson,Cox,Howard,Ward,Torres,Peterson,Gray,Ramirez,James,Watson,Brooks,Kelly,Sanders,Price,Bennett,Wood,Barnes,Ross,Henderson,Coleman,Jenkins,Perry,Powell,Long,Patterson,Hughes,Flores,Washington,Butler,Simmons,Foster,Gonzales,Bryant,Alexander,Russell,Griffin,Diaz,Hayes".Split(',');
        private static string[] us_states = "Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,Louisiana,Maine,Maryland,Massachusetts,Michigan,Minnesota,Mississippi,Missouri,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Pennsylvania,Rhode Island,South Carolina,South Dakota,Tennessee,Texas,Utah,Vermont,Virginia,Washington,West Virginia,Wisconsin".Split(',');
        private static string[] countries = "Aruba,Afghanistan,Angola,Anguilla,Åland Islands,Albania,Andorra,Netherlands Antilles,United Arab Emirates,Argentina,Armenia,American Samoa,Antigua and Barbuda,Australia,Austria,Azerbaijan,Burundi,Belgium,Benin,Burkina Faso,Bangladesh,Bulgaria,Bahrain,Bahamas,Bosnia and Herzegovina,Saint-Barthélemy,Belarus,Belize,Bermuda,Bolivia (Plurinational State of),Brazil,Barbados,Brunei Darussalam,Bhutan,Botswana,Central African Republic,Canada,Switzerland,Chile,China,Côte d'Ivoire,Cameroon,Democratic Republic of the Congo,Congo,Cook Islands,Colombia,Comoros,Cape Verde,Costa Rica,Cuba,Cayman Islands,Cyprus,Czech Republic,Germany,Djibouti,Dominica,Denmark,Dominican Republic,Algeria,Ecuador,Egypt,Eritrea,Western Sahara,Spain,Estonia,Ethiopia,Finland,Fiji,Falkland Islands (Malvinas),France,Faeroe Islands,Micronesia (Federated States of),Gabon,United Kingdom of Great Britain and Northern Ireland,Georgia,Guernsey,Ghana,Gibraltar,Guinea,Guadeloupe,Gambia,Guinea-Bissau,Equatorial Guinea,Greece,Grenada,Greenland,Guatemala,French Guiana,Guam,Guyana,Hong Kong Special Administrative Region of China,Honduras,Croatia,Haiti,Hungary,Indonesia,Isle of Man,India,Ireland,Iran (Islamic Republic of),Iraq,Iceland,Israel,Italy,Jamaica,Jordan,Japan,Kazakhstan,Kenya,Kyrgyzstan,Cambodia,Kiribati,Saint Kitts and Nevis,Republic of Korea,Kuwait,Lao People's Democratic Republic,Lebanon,Liberia,Libyan Arab Jamahiriya,Saint Lucia,Liechtenstein,Sri Lanka,Lesotho,Lithuania,Luxembourg,Latvia,Macao Special Administrative Region of China,Saint-Martin (French part),Morocco,Monaco,Republic of Moldova,Madagascar,Maldives,Mexico,Marshall Islands,The former Yugoslav Republic of Macedonia,Mali,Malta,Myanmar,Montenegro,Mongolia,Northern Mariana Islands,Mozambique,Mauritania,Montserrat,Martinique,Mauritius,Malawi,Malaysia,Mayotte,Namibia,New Caledonia,Niger,Norfolk Island,Nigeria,Nicaragua,Niue,Netherlands,Norway,Nepal,Nauru,New Zealand,Oman,Pakistan,Panama,Pitcairn,Peru,Philippines,Palau,Papua New Guinea,Poland,Puerto Rico,Democratic People's Republic of Korea,Portugal,Paraguay,Occupied Palestinian Territory,French Polynesia,Qatar,Réunion,Romania,Russian Federation,Rwanda,Saudi Arabia,Sudan,Senegal,Singapore,Saint Helena,Svalbard and Jan Mayen Islands,Solomon Islands,Sierra Leone,El Salvador,San Marino,Somalia,Saint Pierre and Miquelon,Serbia,Sao Tome and Principe,Suriname,Slovakia,Slovenia,Sweden,Swaziland,Seychelles,Syrian Arab Republic,Turks and Caicos Islands,Chad,Togo,Thailand,Tajikistan,Tokelau,Turkmenistan,Timor-Leste,Tonga,Trinidad and Tobago,Tunisia,Turkey,Tuvalu,United Republic of Tanzania,Uganda,Ukraine,Uruguay,United States of America,Uzbekistan,Holy See,Saint Vincent and the Grenadines,Venezuela (Bolivarian Republic of),British Virgin Islands,United States Virgin Islands,Viet Nam,Vanuatu,Wallis and Futuna Islands,Samoa,Yemen,South Africa,Zambia,Zimbabwe".Split(',');
        private static string[] country_codes = "ABW,AFG,AGO,AIA,ALA,ALB,AND,ANT,ARE,ARG,ARM,ASM,ATG,AUS,AUT,AZE,BDI,BEL,BEN,BFA,BGD,BGR,BHR,BHS,BIH,BLM,BLR,BLZ,BMU,BOL,BRA,BRB,BRN,BTN,BWA,CAF,CAN,CHE,CHL,CHN,CIV,CMR,COD,COG,COK,COL,COM,CPV,CRI,CUB,CYM,CYP,CZE,DEU,DJI,DMA,DNK,DOM,DZA,ECU,EGY,ERI,ESH,ESP,EST,ETH,FIN,FJI,FLK,FRA,FRO,FSM,GAB,GBR,GEO,GGY,GHA,GIB,GIN,GLP,GMB,GNB,GNQ,GRC,GRD,GRL,GTM,GUF,GUM,GUY,HKG,HND,HRV,HTI,HUN,IDN,IMN,IND,IRL,IRN,IRQ,ISL,ISR,ITA,JAM,JOR,JPN,KAZ,KEN,KGZ,KHM,KIR,KNA,KOR,KWT,LAO,LBN,LBR,LBY,LCA,LIE,LKA,LSO,LTU,LUX,LVA,MAC,MAF,MAR,MCO,MDA,MDG,MDV,MEX,MHL,MKD,MLI,MLT,MMR,MNE,MNG,MNP,MOZ,MRT,MSR,MTQ,MUS,MWI,MYS,MYT,NAM,NCL,NER,NFK,NGA,NIC,NIU,NLD,NOR,NPL,NRU,NZL,OMN,PAK,PAN,PCN,PER,PHL,PLW,PNG,POL,PRI,PRK,PRT,PRY,PSE,PYF,QAT,REU,ROU,RUS,RWA,SAU,SDN,SEN,SGP,SHN,SJM,SLB,SLE,SLV,SMR,SOM,SPM,SRB,STP,SUR,SVK,SVN,SWE,SWZ,SYC,SYR,TCA,TCD,TGO,THA,TJK,TKL,TKM,TLS,TON,TTO,TUN,TUR,TUV,TZA,UGA,UKR,URY,USA,UZB,VAT,VCT,VEN,VGB,VIR,VNM,VUT,WLF,WSM,YEM,ZAF,ZMB,ZWE".Split(',');

        public static string RandomEntry(string[] strings)
        {
            return strings[ran.Next(strings.Length)];
        }

        internal static bool RandomBool()
        {
            return (ran.Next(2) == 0);
        }

        internal static string RandomMaleFirstname()
        {
            return RandomEntry(male_firstnames);
        }

        internal static string RandomFemaleFirstname()
        {
            return RandomEntry(female_firstnames);
        }

        internal static string RandomLastName()
        {
            return RandomEntry(lastnames);
        }

        internal static string RandomState()
        {
            return RandomEntry(us_states);
        }

        internal static DateTime RandomDob()
        {
            return DateTime.Today.Subtract(new TimeSpan(ran.Next(36500), 0, 0, 0));
        }
    }
}
